package com.jumi.microservice.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jumi.microservice.domain.*;
import com.jumi.microservice.domain.vo.MessageUnreadVO;

public interface MessageService extends IService<MessageMail> {

    /**
     * 获取用户消息中心未读数量
     *
     * @param uids
     * @return
     */
    MessageUnreadVO SystemNewNum(Long uids);

    /**
     * 获取消息内容
     */
    MessageMail selectMessageId(Long id);

    /**
     * 消息已读接口
     */
    void readMessage(Long id);

    /**
     * @Description: 发送站内信
     * @Param messageMail
     * @Return {@link Long}
     * @Throws
     * @Author Abel Yang
     * @Date 2020/10/22/022 12:57
     */
    Long messageSend(MessageMail messageMail);

    /**
     * @Description: 发短信
     * @Param messageSms
     * @Return {@link Long}
     * @Throws
     * @Author Abel Yang
     * @Date 2020/10/22/022 13:39
    */
    Long messageSend(MessageSms messageSms);

    /**
     * @Description: 极光推送
     * @Param messageApp
     * @Return {@link Long}
     * @Throws
     * @Author Abel Yang
     * @Date 2020/10/22/022 13:40
    */
    Long messageSend(MessageApp messageApp,MessageBody body,Integer unreadNum);


    /**
     * 极光推送所有设备
     * @param appMessageAll
     * @return
     */
    Boolean messageSend(AppMessageAll appMessageAll);

    /*
     * @Description: 微信公众号推送
     * @Param weChatMessage
     * @Return {@link Long}
     * @Throws
     * @Author Abel Yang
     * @Date 2020/10/22/022 13:41
    */
    Boolean messageSend(WeChatMessage weChatMessage);

    /**
     * @Description: 微信小程序推送
     * @Param weChatAppletsMessage
     * @Return {@link Boolean}
     * @Throws
     * @Author Abel Yang
     * @Date 2020/10/22/022 13:42
    */
    Boolean messageSend(WeChatAppletsMessage weChatAppletsMessage);
}
